<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Actividad extends CI_Controller {

	private $param;					//para listar las actividades de la sede que opera cada operador
		
	// Constructor de la clase
	function __construct() {
		parent::__construct();

		$this->load->model('Model_Actividad');
		$this->load->library('actividadLib');

		$this->form_validation->set_message('required', 'Debe ingresar campo %s');
        $this->form_validation->set_message('my_validation', 'Existe otro registro con el mismo nombre');
        $this->form_validation->set_message('my_validate_time', 'La hora ingresada es incorrecta');
        $this->form_validation->set_message('min_length', 'La hora ingresada es incorrecta');
        $this->form_validation->set_message('max_length', 'La hora ingresada es incorrecta');
        
        $perfil_id = $this->session->userdata('perfil_id');
        if ($perfil_id <> 4){
	        $sede_id = $this->session->userdata('sede_id');     
	        $this->param = 'actividad.sede_id = '.$sede_id;
        }
    }

	public function index() {
		$data['contenido'] = 'actividad/index';
		$data['titulo'] = 'Actividades';				
		$data['query'] = $this->Model_Actividad->all($this->param);
		
		$this->load->view('template', $data);
	}
	
	public function search() {
		$data['contenido'] = 'actividad/index';
		$data['titulo'] = 'Actividades';
		$value = $this->input->post('buscar');
		$data['query'] = $this->Model_Actividad->allFiltered('actividad.name', $value,$this->param);
		$this->load->view('template', $data);
	}

	public function my_validation() {
		return $this->actividadlib->my_validation($this->input->post());
	}

	public function my_validate_time() {
		/* falta validad la fecha!!!!!!!!!!!!!!!!!!!!!!!*/
		return $this->actividadlib->my_validate_time($this->input->post());
	}	

	public function create() {
		$data['contenido'] = 'actividad/create';
		$data['titulo'] = 'Crear Actividad';
		$data['tipo_actividades'] = $this->Model_Actividad->get_tipo_actividades(); /* Lista de los tipos de actividad */
		$this->load->view('template', $data);
	}

	public function insert() {
		$registro = $this->input->post();
		$sede_id = $this->session->userdata('sede_id');
		$registro['sede_id'] = $sede_id;
		
		$this->form_validation->set_rules('name', 'Nombre', 'required|callback_my_validation');
		$this->form_validation->set_rules('descripcion', 'Descripci&oacute;n', 'required');
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		$this->form_validation->set_rules('tipo_actividad_id', 'Tipo de Actividad', 'required');	
		$this->form_validation->set_rules('hora', 'Hora', 'required|trim|min_length[3]|max_length[5]|callback_validate_time');
		$this->form_validation->set_rules('direccion', 'Direccii&oacute;n', 'required');		
        if ($this->form_validation->run() == FALSE) {
            $this->create();
        }
        else {
			$this->Model_Actividad->insert($registro);
			redirect('actividad/index/create_success');
        }
	}

	public function edit($id) {
		$data['contenido'] = 'actividad/edit';
		$data['titulo'] = 'Actualizar Actividad';
		$data['registro'] = $this->Model_Actividad->find($id);
		$data['tipo_actividades'] = $this->Model_Actividad->get_tipo_actividades();
		$this->load->view('template', $data);
	}

	public function update() {
		$registro = $this->input->post();
		
		$this->form_validation->set_rules('name', 'Nombre', 'required|callback_my_validation');
		$this->form_validation->set_rules('descripcion', 'Descripci&oacute;n', 'required');
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		$this->form_validation->set_rules('tipo_actividad_id', 'Tipo de Actividad', 'required');	
		$this->form_validation->set_rules('hora', 'Hora', 'required|trim|min_length[3]|max_length[5]|callback_validate_time');
		$this->form_validation->set_rules('direccion', 'Direccii&oacute;n', 'required');		
				
		if($this->form_validation->run() == FALSE) {
			$this->edit($registro['id']);
		}
		else {
			$this->Model_Actividad->update($registro);
			redirect('actividad/index/success');
		}
	}
	
	public function delete($id) {
		$this->Model_Actividad->delete($id);
		redirect('actividad/index/delete_success');
	}

}
